import os
from PIL import Image
import glob

def convert_and_rename_images(input_folder: str, output_folder: str, prefix: str = "myusv_") -> None:
    """
    将文件夹中的PNG图片转换为JPG格式并按序列重命名
    
    参数:
    input_folder: 输入文件夹路径，包含PNG图片
    output_folder: 输出文件夹路径
    prefix: 重命名时使用的前缀，默认为'myusv_'
    """
    # 创建输出文件夹（如果不存在）
    os.makedirs(output_folder, exist_ok=True)
    
    # 获取所有PNG文件
    png_files = glob.glob(os.path.join(input_folder, "*.png"))
    
    # 遍历处理每个文件
    for i, png_file in enumerate(sorted(png_files)):
        try:
            # 打开PNG图片
            with Image.open(png_file) as img:
                # 如果图片是RGBA模式，转换为RGB
                if img.mode == 'RGBA':
                    img = img.convert('RGB')
                
                # 构建新文件名
                new_filename = f"{prefix}{i:05d}.jpg"  # 生成类似 myusv_00000.jpg 的文件名
                output_path = os.path.join(output_folder, new_filename)
                
                # 保存为JPG
                img.save(output_path, "JPEG", quality=95)
                print(f"已转换并重命名: {os.path.basename(png_file)} -> {new_filename}")
                
        except Exception as e:
            print(f"处理文件 {png_file} 时出错: {str(e)}")

# 使用示例
if __name__ == "__main__":
    # 设置输入和输出文件夹路径
    input_folder = "/home/shuai/Documents/mydataset/my_usv_aug/select_myusv/img"  # 包含PNG图片的文件夹
    output_folder = "/home/shuai/Documents/mydataset/my_usv_aug/select_myusv/JPEGImages"  # 保存转换后JPG图片的文件夹
    
    # 执行转换和重命名
    convert_and_rename_images(input_folder, output_folder)